package _ppt_test;

/*
    检查回文字符串:编写一个Java程序，检查给定的字符串是否是回文字符串。
 */
public class demo05 {
    public static void main(String[] args) {                  // 主方法，程序入口
        String str = "aabbccbbaae";                            // 定义一个字符串
//        demo05 demo05 = new demo05();                         // 创建demo05对象
//        demo05.isReStr(str);                                  // 调用isReStr方法判断字符串是否为回文
        if (demo05.isReStr(str)) {                            // 如果isReStr方法返回true
            System.out.println("这个字符串是回文字符串");      // 输出提示信息：是回文字符串
        } else {                                              // 否则
            System.out.println("这个字符串不是回文字符串");    // 输出提示信息：不是回文字符串
        }
    }

    public static boolean isReStr(String str) {                      // 定义一个方法，判断字符串是否为回文
        if (str.isEmpty()) {
            return false;                                     // 返回false
        }
        int leftInd = 0;                                      // 定义左指针，初始指向字符串开头
        int rightInd = str.length() - 1;                      // 定义右指针，初始指向字符串末尾
        while (leftInd < rightInd) {                          // 当左指针小于右指针时循环
            if (str.charAt(leftInd) == str.charAt(rightInd)) {// 如果左指针和右指针指向的字符相等
                leftInd++;                                    // 左指针右移
                rightInd--;                                   // 右指针左移
            } else {                                          // 如果字符不相等
                return false;                                 // 返回false
            }
        }
        return true;                                          // 如果循环结束，说明是回文字符串，返回true
    }
}
